home *** CD-ROM | disk | FTP | other *** search
/ PC Play 129 / pc play 129.iso / Demo / man2 / man2.exe / data / scripts / base_scripts.lua < prev    next >
Encoding:
Text File  |  2007-01-25  |  4.7 KB  |  140 lines

  1.  
  2. function units_base_setup()
  3.     building_setup(ENET_GEOMETRY_BASE_SHADOW)
  4. end
  5.  
  6. function units_base_resetup()
  7.     building_setup(ENET_GEOMETRY_BASE_SHADOW)
  8. end
  9.  
  10. function units_base_select()
  11.     units_select(12,1)
  12. end
  13.  
  14. function units_base_unselect()
  15.     units_unselect()
  16. end
  17.  
  18. function units_base_selectenemy()
  19.     uniGetExecutor():addSimpleEffect(ENET_EFFECT_SELECTEDGEOMETRY_ENEMY)
  20. end
  21.  
  22. function units_base_damaged()
  23.     uniGetExecutor():applyDamage(uniGetLife())
  24. end
  25.  
  26. function units_base_highlight()
  27.     uniGetExecutor():addEffectWithRadius(ENET_EFFECT_GEOMETRY_HIGHLIGHT,15)
  28. end
  29.  
  30. function units_base_explode()
  31. --    units_explode(500.0,ENET_EFFECT_PS_BIGUNITEXPLODE,true)
  32.     units_explode_base()
  33. end
  34.  
  35. function units_base_move()
  36. end
  37.  
  38. function units_base_fire()
  39.     local unit = uniGetExecutor()
  40.     uniSetLife(uniGetLife() / 6.0)
  41.     local gt = unit:getBone(ENBT_GUNTOWER)
  42.     local sound = unit:play3DSound("lighttank_guntower_rotate.wav",1)
  43.     waitDeath(gt:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOWERTOTARGET,MATH_PI,uniGetTarget()))
  44.     local gun = gt:getBone(ENBT_GUN)
  45.     waitDeath(gun:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOTARGET,MATH_PI / 3.0,uniGetTarget()))
  46.     sound:destroy()
  47.     unit:addAnimationToQueue(ENAT_PREPAREFORFIRE1,1)
  48.     unit:addAnimationToQueue(ENAT_FIREPOSITION1,MATH_INFINITY)
  49.     unit:addAnimationToQueue(ENAT_AFTERFIRE1,1)
  50.     sound = unit:play3DSound("Cargo_open2.wav",1)
  51.     while(unit:getCurrentAnimation() == ENAT_PREPAREFORFIRE1) do
  52.         pause()
  53.     end
  54.     sound:destroy()
  55.     local firespots = {}
  56.     firespots[0] = gt:getBone(ENBT_FIRE2,0)
  57.     firespots[1] = gt:getBone(ENBT_FIRE2,1)
  58.     for i = 0,2 do
  59.         unit:play3DSound("smallrobot_fire.wav",0)
  60.         local shot1 = firespots[0]:addSimpleEffect(ENET_EFFECT_BASESHOT_FLY):executeCommand(ENC_FIRE1)
  61.         local shot2 = firespots[0]:addBulletEffect(ENET_EFFECT_PS_BASESHOT)
  62.         --gt:gunRecoil(0,0.15,6)
  63.         pause(0.1)
  64.         unit:play3DSound("smallrobot_fire.wav",0)
  65.         local shot1_2 = firespots[1]:addSimpleEffect(ENET_EFFECT_BASESHOT_FLY):executeCommand(ENC_FIRE1)
  66.         local shot2_2 = firespots[1]:addBulletEffect(ENET_EFFECT_PS_BASESHOT)
  67.         --gt:gunRecoil(1,0.15,6)
  68.         pause(0.1)
  69.         shot2:suspendedDestroy(1.5)
  70.         shot2_2:suspendedDestroy(1.5)
  71.     end
  72.     pause(1.0)
  73.     unit:setCurrentAnimationRepeatCount(0)
  74. end
  75.  
  76. registerCommand(ENSCRIPTSET_BASE,ENC_MOVE,"units_base_move")
  77. registerCommand(ENSCRIPTSET_BASE,ENC_FIRE1,"units_base_fire")
  78. registerCommand(ENSCRIPTSET_BASE,ENC_FIRE2,"units_base_fire")
  79. registerCommand(ENSCRIPTSET_BASE,ENC_SELECT,"units_base_select")
  80. registerCommand(ENSCRIPTSET_BASE,ENC_SELECTENEMY,"units_base_selectenemy")
  81. registerCommand(ENSCRIPTSET_BASE,ENC_UNSELECT,"units_base_unselect")
  82. registerCommand(ENSCRIPTSET_BASE,ENC_SETUP,"units_base_setup")
  83. registerCommand(ENSCRIPTSET_BASE,ENC_RESETUP,"units_base_resetup")
  84. registerCommand(ENSCRIPTSET_BASE,ENC_DAMAGED,"units_base_damaged")
  85. registerCommand(ENSCRIPTSET_BASE,ENC_EXPLODE,"units_base_explode")
  86. registerCommand(ENSCRIPTSET_BASE,ENC_HIGHLIGHT,"units_base_highlight")
  87. registerCommand(ENSCRIPTSET_BASE,ENC_INSIDE,"units_inside")
  88.  
  89. -- make description of unit
  90. desc = getEffectDescriptionP(ENET_UNIT_BASE)
  91. desc.ClassID = ENCLASS_MESHINSTANCE
  92. desc.EffectClassType = ENECT_GEOMETRY
  93. desc.FileName = "base.rmd"
  94. desc.ScriptSet = ENSCRIPTSET_BASE
  95. desc.MoveType = ENMOVE_GROUND
  96. desc.RenderType = ENRENDERTYPE_GEOMETRY
  97. desc.Material = ENMAT_CAPITAL
  98. desc.MaterialColors = units_materialcolors_human
  99.  
  100. -- shadow
  101. desc = getEffectDescriptionP(ENET_GEOMETRY_BASE_SHADOW)
  102. desc.ClassID = ENCLASS_MESHINSTANCE
  103. desc.EffectClassType = ENECT_GEOMETRY
  104. desc.FileName = "base_shadow.rmd"
  105. desc.RenderType = ENRENDERTYPE_SHADOW
  106. desc.Material = ENMAT_SHADOW
  107. desc.MaterialColors = units_materialcolors_shadow
  108.  
  109. -- register new unit to logic
  110. unitDesc = logic_getUnitDescP(42)
  111. unitDesc.group = 0
  112. unitDesc.order = 0
  113. unitDesc.unit_res_id = ENET_UNIT_BASE
  114. unitDesc.unit_icon_id = "Smallrobot_h_small_normal.dds"
  115. unitDesc.active_id = "Smallrobot_h_small_active.dds"
  116. unitDesc.pressed_id = "Smallrobot_h_small_pressed.dds"
  117. unitDesc.big_icon_id = "Military_base_ico.dds"
  118. unitDesc.small_icon_id = "80A0.dds"
  119. unitDesc.HP = 13
  120. unitDesc.MP = 0
  121. unitDesc.WR = 4
  122. unitDesc.min_WR = 1
  123. unitDesc.WD = 3
  124. unitDesc.WR2 = 0
  125. unitDesc.min_WR2 = 0
  126. unitDesc.WD2 = 0
  127. unitDesc.ability = 0
  128. unitDesc.transport = 2
  129. unitDesc.value = 7
  130. unitDesc.race = 2
  131. unitDesc.fire_pause = 0.2
  132. unitDesc.move_pause = 0.5
  133. unitDesc.unit_info_scale = 0.08
  134. unitDesc.scn_name = "BASE"
  135.  
  136. ------------------------------------------------------------------------------------------------------
  137. ------------------------ effects related to unit------------------------------------------------------
  138. ------------------------------------------------------------------------------------------------------
  139.  
  140.